# 带中学生玩转 Python
# https://mp.weixin.qq.com/s?__biz=MzIwMjE1MTI4MA==&mid=2247505852&idx=1&sn=ea53e49c610bda90000ec735dbed4644&chksm=96e193a3a1961ab542d2cc9d4ce72cbc63108b760020a35a34ce2b3d1e88338c46cb9fb7adaf&scene=21#wechat_redirect
# 案例1：绘制立方体 （底边直）
from turtle import *


#绘制矩形
def setCube():
    color("#6c6c6c")   # 深灰色
    begin_fill()
    forward(200)
    right(90)      # 1.右90度
    forward(200)
    right(90)      # 2.右90度    
    forward(200)
    right(90)      # 3.右90度 
    forward(200)
    right(90)      # 4.右90度 
    end_fill()
    return 0

#绘制立方体
def setRectangle():
    ### ① 绘制暗面
    color("#6c6c6c")   # 深灰色
    begin_fill()
    forward(200)
    right(90)      # 1.右90度
    forward(200)
    right(90)      # 2.右90度    
    forward(200)
    right(90)      # 3.右90度 
    forward(200)
    right(90)      # 4.右90度 
    end_fill()

    ### ② 绘制亮面
    fillcolor("#cbcbcb")  # 浅灰色
    begin_fill()
    left(45)       # 5.左45度 
    forward(100)
    right(45)      # 6.右45度 
    forward(200)
    right(135)     # 7.右135度 
    forward(100)
    end_fill()

    ### ③ 绘制灰面
    fillcolor("#acacac")  # 中灰色
    begin_fill()
    backward(100)  # 后退
    left(45)       # 8.左45度
    forward(200)
    right(45)      # 9.右45度
    forward(100)
    end_fill()
    return 0


#初始化
speed(0)
bgcolor('#b8b448')
penup()
home()

#循环绘制
for i in range(180):
    right(i)
    down()
    
    #画个正方形
    setCube()

    #画个立方体
    #setRectangle()

    clear()
    up()
    home()

hideturtle()         # 隐藏海龟

#固定窗体
# 1、mainloop()方法允许程序循环执行，并进入等待和处理事件。窗口中的组件可以理解为一个连环画.
# 2、mainloop()方法的作用是监控每个组件，当组件发生变化或触发事件时，会立即更新窗口。
mainloop()